package com.clw.classfile.accessflags;

/**
 * Created by chengliwei on 2018/11/12.
 */
public class FieldAccessFlag {

    public static final short ACC_PUBLIC = 0x0001; // 是否为public类型
    public static final short ACC_PRIVATE = 0x0002; // 是否为private类型
    public static final short ACC_PROTECTED = 0x0004; // 是否为protected类型
    public static final short ACC_STATIC = 0x0008; // 是否为static类型
    public static final short ACC_FINAL = 0x0010; // 是否被声明为final
    public static final short ACC_VOLATILE = 0x0040; // 是否被声明为volatile
    public static final short ACC_TRANSIENT = 0x0080; // 是否被声明为transient
    public static final short ACC_SYNTHETIC = 0x1000; // 标识这个字段是否由编译器自动产生的
    public static final short ACC_ENUM = 0x4000; // 标识这是一个枚举字段

    /* 很明显，在实际情况中，ACC_PUBLIC、ACC_PRIVATE、ACC_PROTECTED三个标志
    最多只能选择其一，ACC_FINAL、ACC_VOLATILE不能同时选择。接口之中的字段必须有
    ACC_PUBLIC、ACC_STATIC、ACC_FINAL标志，这些都是由Java本身的语言规则所决定
    的。*/
}
